package com.qupai.lib_base.utils.nds

import android.content.Context
import com.alibaba.pdns.DNSResolver


object AliDnsUtils {

    val PRELOAD_HOST_NAMES = arrayOf(
        "terminal.timefilter.aishiguang.net",
        "api.leyouphoto.com",
        "ws.zhong-meng.com",
        "ws.fo.cyou",
        "timefilter.zhong-meng.com",
        "timefilter-public.oss-accelerate.aliyuncs.com",
        "timefilter.fo.cyou",
    )

    private const val accountID = "146536" //设置您在控制台接入sdk的accountId

    private const val CACHE_MAX_NUMBER = 100 //设置缓存域名的最大个数，默认为100

    private const val MAX_NEGATIVE_CACHE = 30 //设置否定缓存的最大TTL时间，默认为30秒

    private const val MAX_TTL_CACHE = 1 * 60 * 60 //设置缓存的最大TTL时间，默认为3600秒


    fun init(context: Context, hostNames: Array<String> = PRELOAD_HOST_NAMES) {

        DNSResolver.Init(context, accountID) //设置控制台接入sdk的accountId

        DNSResolver.setEnableShort(false) //设置是否开启short模式，默认不开启

        DNSResolver.setEnableIPv6(false) //设置是否开启IPV6的访问模式，默认不开启

        DNSResolver.setEnableCache(true) //设置是否开启使用缓存，默认开启

        DNSResolver.setEnableSpeedTest(false) //设置是否开启IP测速，默认不开启

        DNSResolver.setEnableSchedulePrefetch(true) //设置是否开启定时主动更新过期缓存,默认为开启

        DNSResolver.setMaxTtlCache(MAX_TTL_CACHE) //设置缓存的最大TTL时间，默认为3600秒

        DNSResolver.setSpeedPort(DNSResolver.PORT_80) //设置ip测量socket检测的端口号，默认80端口

        DNSResolver.setMaxNegativeCache(MAX_NEGATIVE_CACHE) //设置否定缓存的最大TTL时间，默认为30秒

        DNSResolver.setSchemaType(DNSResolver.HTTPS) //设置访问http还是https模式

        DNSResolver.getInstance().setMaxCacheSize(CACHE_MAX_NUMBER) //设置缓存域名的最大个数，默认为100

        DNSResolver.getInstance().preLoadDomains(
            DNSResolver.QTYPE_IPV4,
            hostNames
        ) //设置域名预先解析,将预加载域名替换为您希望使用阿里DNS解析的域名

    }


}